"""adminlayui URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/4.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.conf import settings

from django.conf.urls.static import static

from django.conf.urls import url  ## 新增、导入url操作

from django.contrib import admin
from django.urls import path, re_path
from django.views.static import serve

from adminlayui.settings import MEDIA_ROOT
from app01 import views, selectuser, base, dgdsrw, xuanranjd, webssh, \
    rsyncpy  ## 新增、导入视图views.py和自己写的py脚本文件selectuser.py
from app01.views import login  # 登陆  调用class

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
    # 控制首页 出来的配置
    url(r'^index/console1/', views.console1),
    # 登陆的类方法

    url(r'^login/$', login.as_view(), name='login'),
    # 退出登陆
    path('loginout/', views.loginout, name='loginout'),
    # 图片 验证码相关操作
    path('get_code/', views.get_code, name='get_code'),
    # 用户管理
    path('index/userinfo/', views.userinfo, name='userinfo'),
    # 这个地方直接是 手动绑定了，因为在访问的时候，是在index页面下、访问链接前 会默认加上 /index/
    # http://127.0.0.1:8000/index/userinfo/

    #  类方法
    path('select/', selectuser.select),
    # 添加用户
    path('adduserclass/', selectuser.adduserclass),
    path('adduser/', views.adduser, name='adduser'),

    # 删除用户
    path('deleteuser/', selectuser.deleteuser),
    # 模糊查询
    path('search/', selectuser.search),
    # 批量删除
    path('user_delete_all/', selectuser.user_delete_all),

    # 修改学生
    path('edituser/', selectuser.edituser),
    path('updatesuser/', views.updatesuser, name='updatesuser'),

    # 批量导入用户数据  使用csv表格
    path('fileadd/', selectuser.fileadd),
    path('addFile/', views.addFile, name='addFile'),

    # 个人修改资料 personal
    path('personal/', views.personal, name='personal'),
    path('peruserclass/', selectuser.peruserclass),

    # 日常操作
    path('index/switch/', views.switch, name='switch'),
    path('switchswitch/', base.switchswitch),

    path('index/swj/', views.swj, name='swj'),
    path('swjswj/', base.swjswj),
    path('index/zcd/', views.zcd, name='zcd'),
    path('zcdzcd/', base.zcdzcd),

    # 定时任务
    path('index/dsrwinfo/', views.dsrwinfo, name='dsrwinfo'),
    #  类方法
    path('selectdsrw/', dgdsrw.selectdsrw),

    # 批量删除
    path('dsrw_log_delete_all/', dgdsrw.dsrw_log_delete_all),

    # 定时任务结果
    path('index/dsrwresult/', views.dsrwresult, name='dsrwresult'),
    #  类方法
    path('selectdsrwresult/', dgdsrw.selectdsrwresult),

    # 批量删除
    path('dsrwresult_log_delete_all/', dgdsrw.dsrwresult_log_delete_all),

    # 定时任务开关
    path('index/dsrwswitch/', views.dsrwswitch, name='dsrwswitch'),
    #  类方法
    path('selectdsrwswitch/', dgdsrw.selectdsrwswitch),

    # 修改定时任务计划
    path('editdsrwjh/', dgdsrw.editdsrwjh),

    path('updatesdsrwjh/', views.updatesdsrwjh, name='updatesdsrwjh'),
    #  开始计划任务
    path('startdsrw/', dgdsrw.startdsrw),

    #  类方法  不参加渲染的同事名
    path('selectdnoxrname/', dgdsrw.selectdnoxrname),

    path('index/noxrname/', views.noxrname, name='noxrname'),
    # 不参加渲染的同事名
    path('editnoxrname/', dgdsrw.editnoxrname),

    path('upnoxrname/', views.upnoxrname, name='upnoxrname'),

    # 渲染节点操作
    path('index/xrjdaction/', views.xrjdaction, name='xrjdaction'),
    path('xuanran/', xuanranjd.xuanran),

    # webssh
    path('index/allhosts/', views.allhosts, name='allhosts'),
    #  类方法 、显示 所有主机
    path('selectAllHosts/', webssh.selectAllHosts),
    # 添加主机
    path('adduserclass/', selectuser.adduserclass),
    path('addhost/', views.addhost, name='addhost'),

    # 添加主机 和 修改主机时 、动态 显示远程 用户
    path('addhost/remoteusershow/', webssh.remoteusershow),
    path('updatehost/remoteusershow/', webssh.remoteusershow),  # 因为编辑页面的前缀 不一样，因此又写了一条
    path('addhostclass/', webssh.addhostclass),
    # 模糊查询
    path('searchhost/', webssh.searchhost),
    # 修改主机
    path('edithost/', webssh.edithost),
    path('updatehost/', views.updatehost, name='updatehost'),
    # 批量删除主机
    path('host_delete_all/', webssh.host_delete_all),

    # 远程用户
    path('index/remoteuser/', views.remoteuser, name='remoteuser'),
    #  类方法、显示所有远程用户
    path('selectremoteuser/', webssh.selectremoteuser),
    # 添加 远程用户
    path('addremoteuserclass/', webssh.addremoteuserclass),
    path('addremoteuser/', views.addremoteuser, name='addremoteuser'),
    # 修改
    path('editremoteuser/', webssh.editremoteuser),
    path('updateremoteuser/', views.updateremoteuser, name='updateremoteuser'),
    # 批量删除
    path('remoteuser_delete_all/', webssh.remoteuser_delete_all),

    # webssh 操作页面   修改 compatibility.py 的配置
    # def new_application(scope, receive, send):
    #     instance = application()
    #     return await instance(scope, receive, send)

    path('websshup/', webssh.websshup),  # 动态获取 远程用户
    path('webssh2/', views.webssh2, name='webssh2'),

    # 远程wenssh  操作日志
    path('index/websshlog/', views.websshlog, name='websshlog'),
    #  类方法
    path('selectweblog/', webssh.selectweblog),
    # 批量删除
    path('log_delete_all/', webssh.log_delete_all),

    # resKey 、url参数 加密的 key
    path('resKey/', webssh.resKey),

    path('luxiang/', views.luxiang),
    path('lxpath/', webssh.lxpath),
    path('lx/', views.luxiang),

    # 暴露后端指定文件夹资源
    ##media配置——配合settings中的MEDIA_ROOT的配置，就可以在浏览器的地址栏访问media文件夹及里面的文件了
    re_path(r'media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),

    # 图表测试
    path('test/', views.test),
    path('t830/', views.t830),
    path('tubiao1/', webssh.tubiao1),

    # 渲染图表 展示
    path('xrbtdata/', dgdsrw.xrbtdata),
    path('index/xrtbhtml/', views.xrtbhtml),

    # rsync 测试
    # path('rsync/', views.rsync),
    path('rsyncpy/', rsyncpy.get_dir_json),
    path('view_dir/', rsyncpy.view_dir),
    path('rsynchosts/', views.rsynchosts),

    path('rsynchosts/rsyncremotehostshow/', rsyncpy.rsyncremotehostshow),
    path('index/rsyncall/', rsyncpy.rsyncall),
    path('selectallrsync/', rsyncpy.selectallrsync),
    path('addrsync/', rsyncpy.addrsync),
    path('rsync_delete_all/', rsyncpy.rsync_delete_all),
    path('searchrsync/', rsyncpy.searchrsync),
    path('rsyncstart/', rsyncpy.rsyncstart),


    # dashboard 测试
    path('test1012/', views.test1012),
    path('test1014/', views.test1014),
path('test6/', views.test6),

]
# urlpatterns += static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS[0], show_indexes=True)
# urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
